package com.dataType;

import java.util.Objects;

/***
 * @ClassName: DataType.DataType
 * @Description:
 * @Auther: 送一一块二向箔
 * @Date: 17:19 2022/1/19
 * @version : V1.0
 */
public class DataType {
    //Long需要加L区分
    Long long1 = 123412354125L;
    Float float2 = 1234.4232F;

    //low --------------------------heigh  转换时从高到低，会内存溢出的问题
    //byte,short,char --> int --> long --> float --> double




    public static void main(String[] args) {
        //整数拓展 二进制0b 八进制0 十六进制0x
        int i = 10;
        int i2 = 0b10; //2
        int i3 = 010; //8
        int i4 = 0x1F; //16+15=31   0-9 A-F
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);

        //浮点数拓展  float double
        //避免使用浮点数进行比较，和钱有关的禁止使用浮点数
        //银行业务一般使用BigDecimal
        float f = 0.1F;//0.1
        double b = 1.0/10;//0.1
        System.out.println(f == b); //fasle
        float f2 = 3423352353452345F;
        float f3 = f2 +1;
        System.out.println(f2 == f3);//true



        //字符拓展 所有的字符本质还是数字
        //Unicode编码 表 2字节 0-65535  4位16进制
        //U0000 UFFFF

        char c1 = (char)20013;
        System.out.println(c1);//'中'
        System.out.print('\u0061');//'a'


        //"\"反斜杠转义字符  \n换行符   \t制表符


        //内存初始
        String s1 = new String("aaa");
        String s2 = new String("aaa");
        System.out.println(s1 == s2);//false  对象不一样指向的内存地址也不一样了，所以不相等
        System.out.println(Objects.equals(s1, s2));// 所以要用equals对比

    }

}
